#!/bin/bash

# 记账本应用启动脚本

echo "🚀 启动记账本应用..."

# 使用SQLite数据库，无需检查MongoDB
echo "✅ 使用SQLite数据库"

# 清理可能存在的进程
echo "🧹 清理已有进程..."
pkill -f "nodemon src/app.js" 2>/dev/null || true
pkill -f "vite" 2>/dev/null || true
sleep 2

# 检查端口是否被占用
if lsof -Pi :3000 -sTCP:LISTEN -t >/dev/null; then
    echo "⚠️  端口3000被占用，正在清理..."
    lsof -ti:3000 | xargs -r kill -9
    sleep 1
fi

if lsof -Pi :5173 -sTCP:LISTEN -t >/dev/null; then
    echo "⚠️  端口5173被占用，正在清理..."
    lsof -ti:5173 | xargs -r kill -9
    sleep 1
fi

# 启动后端服务
echo "🔧 启动后端API服务..."
cd backend
if [ ! -d "node_modules" ]; then
    echo "📦 安装后端依赖..."
    npm install
fi

# 后台启动后端
npm run dev &
BACKEND_PID=$!
echo "✅ 后端服务已启动 (PID: $BACKEND_PID)"

# 等待后端服务启动
sleep 3

# 启动前端开发服务器
echo "🎨 启动前端开发服务器..."
cd ../frontend
if [ ! -d "node_modules" ]; then
    echo "📦 安装前端依赖..."
    npm install
fi

echo "🌐 前端开发服务器启动中..."
echo "📍 前端地址: http://localhost:5173"
echo "📍 后端API: http://localhost:3000"
echo ""
echo "按 Ctrl+C 停止所有服务"

# 启动前端（前台运行）
npm run dev

# 当前端服务停止时，也停止后端服务
echo "🛑 停止后端服务..."
kill $BACKEND_PID
echo "👋 所有服务已停止"